package com.dingding.service.user.core.dao.impl;

import org.springframework.stereotype.Component;

import com.dingding.common.core.base.dao.impl.BaseDaoImpl;
import com.dingding.common.core.beans.cache.UserInfoCache;
import com.dingding.common.core.util.ToolUtil;
import com.dingding.service.user.core.dao.IUserInfoCacheDao;
import com.dingding.service.user.core.sql.UserLoginSQL;

/** 
 * @ClassName: UserInfoCacheDaoImpl 
 * @Description: 用户信息Dao实现类
 * @author chenwei
 * @date 2016年6月5日 下午7:48:42 
 * @version 叮叮搭车V2.2 
*/
@Component("userInfoCacheDao")
public class UserInfoCacheDaoImpl extends BaseDaoImpl<UserInfoCache> implements IUserInfoCacheDao {

	/** 
	 * @Title: setUserInfoCache 
	 * @Description: 获取用户信息
	 * @param userId 用户Id
	 * @author chenwei
	 * @return UserInfoCache  用户信息bean
	 * @throws 
	*/
	@Override
	public UserInfoCache getUserInfoCache(String userId) {
		
		UserInfoCache userInfoCache = new UserInfoCache();
		
		Object[] obj = null;

		try {
			// 接收用户详情信息(表：userdetail+userlogin+vehicleinfo)
			obj = super.sqlQueryUnResultObj(UserLoginSQL.GET_USER_DETAIL_INFO, false, userId);
		} catch (Exception e) {
			log.info("登录异常，类：" + this.getClass() + "getUserInfo()");
			return null;
		}

		// 用户详情信息转换为客户端响应bean - ResUserLogin
		setuserInfoCache(obj, userInfoCache);
		
		return userInfoCache;
	}
	
	/**
	 * @Title: setResUserLogin 
	 * @Description:
	 *         将Object[]转为ResUserLogin实体bean 
	 * @param obj 数据库查询到的数据
	 *  @param
	 *         resUserLogin 用户登录响应bean 
	 *  @return void @throws
	 */
	private void setuserInfoCache(Object[] obj, UserInfoCache userInfoCache) {

		// 判断数据库查询结果是否为空
		if (obj != null && obj.length > 0) {

			// 用户主键ID
			if (obj[0] != null) {
				userInfoCache.setLoginId(obj[0].toString());
			}
			// 用户角色(1:乘客2:车主)
			if (obj[1] != null) {
				userInfoCache.setUserRole(ToolUtil.castInteger(obj[1]));
			}
			// 提现标识(1.未提现2：提现过)
			if (obj[2] != null) {
				userInfoCache.setIsDeposit(ToolUtil.castInteger(obj[2]));
			}
			// 昵称
			if (obj[3] != null) {
				userInfoCache.setNickName(obj[3].toString());
			}
			// 电话号码
			if (obj[4] != null) {
				userInfoCache.setTellphone(obj[4].toString());
			}
			// 年龄
			if (obj[5] != null) {
				userInfoCache.setAge(ToolUtil.castInteger(obj[5]));
			}
			// 性别(1:男2:女)
			if (obj[6] != null) {
				userInfoCache.setSex(ToolUtil.castInteger(obj[6]));
			}
			// 职业
			if (obj[7] != null) {
				userInfoCache.setOccupation(obj[7].toString());
			}
			// 籍贯
			if (obj[8] != null) {
				userInfoCache.setOrigin(obj[8].toString());
			}
			// 用户头像地址
			if (obj[9] != null) {
				userInfoCache.setUserAvatar(ToolUtil.imageAddress(obj[9].toString()));
			}
			// 家的地址
			if (obj[10] != null) {
				userInfoCache.setHomeAddress(obj[10].toString());
			}
			// 家的经度
			if (obj[11] != null) {
				userInfoCache.setHomeLongitude(ToolUtil.castDouble(obj[11]));
			}
			// 家的纬度
			if (obj[12] != null) {
				userInfoCache.setHomeLatitude(ToolUtil.castDouble(obj[12]));
			}
			// 公司地址
			if (obj[13] != null) {
				userInfoCache.setCompanyAddress(obj[13].toString());
			}
			// 公司经度
			if (obj[14] != null) {
				userInfoCache.setCompanyLongitude(ToolUtil.castDouble(obj[14]));
			}
			// 公司纬度
			if (obj[15] != null) {
				userInfoCache.setCompanyLatitude(ToolUtil.castDouble(obj[15]));
			}
			// 上班时间
			if (obj[16] != null) {
				userInfoCache.setStartworkTime(obj[16].toString());
			}
			// 下班时间
			if (obj[17] != null) {
				userInfoCache.setEndworkTime(obj[17].toString());
			}
			// 车牌号
			if (obj[18] != null) {
				userInfoCache.setLisencePlate(obj[18].toString());
			}
			// 认证状态(0:默认1：审核中2:审核通过3：审核未通过)
			if (obj[19] != null) {
				userInfoCache.setVstatus(ToolUtil.castInteger(obj[19]));
			}
			// 车辆型号
			if (obj[20] != null) {
				userInfoCache.setVehicleType(obj[20].toString());
			}
			// 车辆型号
			if (obj[21] != null) {
				userInfoCache.setVehicleModel(obj[21].toString());
			}
			// 车辆颜色
			if (obj[22] != null) {
				userInfoCache.setVehicleColor(obj[22].toString());
			}
			// 行驶证照片
			if (obj[23] != null) {
				userInfoCache.setXszImage(ToolUtil.imageAddress(obj[23].toString()));
			}
			// 驾驶证照片
			if (obj[24] != null) {
				userInfoCache.setJszImage(ToolUtil.imageAddress(obj[24].toString()));
			}
			// 车辆照片
			if (obj[25] != null) {
				userInfoCache.setVehicleImage(ToolUtil.imageAddress(obj[25].toString()));
			}
			// 车辆审核评语
			if (obj[26] != null) {
				userInfoCache.setDescription(obj[26].toString());
			}
			// 行驶证审核评语
			if (obj[27] != null) {
				userInfoCache.setXszDescription(obj[27].toString());
			}
			// 驾驶证评语
			if (obj[28] != null) {
				userInfoCache.setJszDescription(obj[28].toString());
			}
			// 车辆图片评语
			if (obj[29] != null) {
				userInfoCache.setVehicleDescription(obj[29].toString());
			}
			// 头像缩略图地址
			if (obj[30] != null) {
				userInfoCache.setUserTabloidAvatar(ToolUtil.imageAddress(obj[30].toString()));
			}
			// 头像缩略图地址
			if (obj[31] != null) {
				userInfoCache.setToken(obj[31].toString());
			}
			// 用户级别
			if (obj[32] != null) {
				userInfoCache.setUserLevel(Float.parseFloat(obj[32].toString()));
			}
		}

	}

}
